#ifndef MSGQUEUE_H_
#define MSGQUEUE_H_
#define MAX 10 
#include<stdio.h>

struct Package{
  int type;
  int sock;
  int destination;
  char msg[50];
  char other[50];
};

struct Msgqueue{
	struct Package age[MAX+1];
	unsigned int head;
	unsigned int tail;
};
void init_msg(struct Msgqueue *msg)
{
	(*msg).head = 0;
	(*msg).tail = 0;
}
int full_msg(struct Msgqueue *msg)
{
	return ((((*msg).tail+1) % (MAX+1)) == (*msg).head);
}
int empty_msg(struct Msgqueue *msg)
{
	return ((*msg).tail == (*msg).head);
}
void add_pkg(struct Msgqueue * msg,const struct Package *pack)
{
	if(full_msg(msg)){
		printf("已满\n");
		return ;
	}
	(*msg).age[(*msg).tail%MAX] = *pack;
	(*msg).tail++;	
}

void ret_dele_pkg(struct Msgqueue *msg,struct Package *pack)
{
	if(empty_msg(msg))//如果头尾一致，
	{	printf("已空\n"); return; }
	(*pack) = (*msg).age[(*msg).head%MAX];
	(*msg).head++;
}
#endif
